package Controlador;

import Dao.DaoFeriado;
import Modelo.DiasFeriados;
import Modelo.Listas;
import Vista.JFrameDiasFeriados;
import Vista.Mensajes;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ControladorDiasFeriados implements ActionListener {

    private boolean Existe;
    private JFrameDiasFeriados formFeridos;
   // private Listas listFeria;

    public ControladorDiasFeriados() {
        //listFeria = lisFer;
        formFeridos = new JFrameDiasFeriados();
        formFeridos.agregarListener(this);
        formFeridos.setVisible(true);
        ;
    }

    private void cargarFeriados() 
    {
        try {
            int fila;
            //DiasFeriados feriados = new DiasFeriados();
            String diaf;
            DaoFeriado daoFeriado = new DaoFeriado();
            ResultSet rs;
            rs=daoFeriado.ConsultarFeriados();
            fila=0;
            while (rs.next())
            {
                diaf=rs.getString(1);
                
                formFeridos.getjTableFeriados().setValueAt(diaf, fila, 0);
                fila++;
            }
        } catch (SQLException ex) {
            Logger.getLogger(ControladorDiasFeriados.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }

    private void grabar() 
    {
        try {
            if(formFeridos.getDateFecha().getDate()==null)
            {
                Mensajes.Aviso("Ingrese una fecha", null);
                return;
            }
            Date dfe;
            DiasFeriados feriados = new DiasFeriados();
            dfe = formFeridos.getDateFecha().getDate();
            DateFormat df = DateFormat.getDateInstance();
            String f =  df.format(dfe);
            DaoFeriado daoF = new DaoFeriado();
            ResultSet rs;
            rs= daoF.BuscarDia(f);
            
            if(rs.next())
            {
                Mensajes.Aviso("Este dia ya fue guardado", "");
                limpiar();
                //Enabled(false);
                formFeridos.getDateFecha().requestFocusInWindow();
                return;
            }
            
            
            daoF.InsertarDia(f);
            cargarFeriados();
            
            formFeridos.getDateFecha().requestFocusInWindow();
            Mensajes.Aviso("El Dia fue Guardado", "");
        } catch (SQLException ex) {
            Logger.getLogger(ControladorDiasFeriados.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void limpiar() {
        formFeridos.getDateFecha().setDate(null);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(formFeridos.getBtnBuscarDF())) {
            cargarFeriados();
        }
        if (e.getSource().equals(formFeridos.getBtnGuardarDF())) {
            grabar();
            limpiar();
            
        }
        if (e.getSource().equals(formFeridos.getBtnSalirDF())) {
            formFeridos.dispose();
        }
        if (e.getSource().equals(formFeridos.getBtnCancelarDF())) {
            limpiar();
        }
    }
}
